/*
 * Auto generated C++ implementation for Mass Effect 2.
 *	by _silencer.
 */

#include "stdafx.h"
#include "unreal_game.h"

namespace game
{
	IMPLEMENT_PACKAGE_CLASS( SFXDamageType_AssaultRifle, SFXDamageType_Weapon, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXWeapon_AssaultRifle, SFXWeapon_AssaultRifle_Base, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXDamageType_Shotgun, SFXDamageType_Weapon, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXWeapon_Shotgun, SFXWeapon_Shotgun_Base, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXDamageType_SniperRifle, SFXDamageType_Weapon, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXWeapon_SniperRifle, SFXWeapon_SniperRifle_Base, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXDamageType_HeavyPistol, SFXDamageType_Weapon, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXWeapon_HeavyPistol, SFXWeapon_HeavyPistol_Base, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXDamageType_HeavyWeapon, SFXDamageType_Weapon, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXDamageType_Grenade, SFXDamageType_HeavyWeapon, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXHeavyWeapon_GrenadeLauncher, SFXHeavyWeapon, SFXGameContent_Inventory )
	IMPLEMENT_PACKAGE_CLASS( SFXProjectile_Grenade, SFXProjectile_Explosive, SFXGameContent_Inventory )


	AnimNodeSequence* SFXWeapon_AssaultRifle::GetWeaponAnimNodeSeq(, SkeletalMeshComponent* SkelMesh, AnimNodeSequence* AnimSeq )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_AssaultRifle.GetWeaponAnimNodeSeq" );

		struct GetWeaponAnimNodeSeqParams
		{
			AnimNodeSequence* ReturnValue; //offset = 0, size = 4
			SkeletalMeshComponent* SkelMesh; //offset = 4, size = 4
			AnimNodeSequence* AnimSeq; //offset = 8, size = 4
		} params;

		params.SkelMesh = SkelMesh;
		params.AnimSeq = AnimSeq;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	WwiseEvent* SFXWeapon_AssaultRifle::GetWeaponSpecificImpactSound( SFXPhysicalMaterialImpactSounds* ImpactSounds )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_AssaultRifle.GetWeaponSpecificImpactSound" );

		struct GetWeaponSpecificImpactSoundParams
		{
			SFXPhysicalMaterialImpactSounds* ImpactSounds; //offset = 0, size = 4
			WwiseEvent* ReturnValue; //offset = 4, size = 4
		} params;

		params.ImpactSounds = ImpactSounds;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	ParticleSystem* SFXWeapon_AssaultRifle::GetWeaponSpecificImpactEffect( SFXPhysicalMaterialImpactEffects* ImpactEffects )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_AssaultRifle.GetWeaponSpecificImpactEffect" );

		struct GetWeaponSpecificImpactEffectParams
		{
			SFXPhysicalMaterialImpactEffects* ImpactEffects; //offset = 0, size = 4
			ParticleSystem* ReturnValue; //offset = 4, size = 4
		} params;

		params.ImpactEffects = ImpactEffects;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	DecalComponent* SFXWeapon_AssaultRifle::GetWeaponSpecificDecalData( SFXPhysicalMaterialDecals* DecalEffects, Float FadeTime, Int DecalLength )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_AssaultRifle.GetWeaponSpecificDecalData" );

		struct GetWeaponSpecificDecalDataParams
		{
			SFXPhysicalMaterialDecals* DecalEffects; //offset = 0, size = 4
			Float FadeTime; //offset = 4, size = 4
			DecalComponent* ReturnValue; //offset = 8, size = 4
			Int DecalLength; //offset = 12, size = 4
		} params;

		params.DecalEffects = DecalEffects;
		params.FadeTime = FadeTime;
		params.DecalLength = DecalLength;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void SFXWeapon_AssaultRifle::StopMuzzleFlashEffect()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_AssaultRifle.StopMuzzleFlashEffect" );

		this->call_function( function, 0, 0 );
	}

	void SFXWeapon_AssaultRifle::PlayFireEffects( Byte FiringMode, Vector HitLocation )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_AssaultRifle.PlayFireEffects" );

		struct PlayFireEffectsParams
		{
			Byte FiringMode; //offset = 0, size = 1
			Vector HitLocation; //offset = 4, size = 12
		} params;

		params.FiringMode = FiringMode;
		params.HitLocation = HitLocation;

		this->call_function( function, &params, 0 );
	}

	void SFXWeapon_AssaultRifle::PlayMuzzleFlashEffect()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_AssaultRifle.PlayMuzzleFlashEffect" );

		this->call_function( function, 0, 0 );
	}

	Bool SFXWeapon_AssaultRifle::ShouldSpawnTracerFX()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_AssaultRifle.ShouldSpawnTracerFX" );

		struct ShouldSpawnTracerFXParams
		{
			Bool ReturnValue: 1; //offset = 0, size = 4
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	WwiseEvent* SFXWeapon_Shotgun::GetWeaponSpecificImpactSound( SFXPhysicalMaterialImpactSounds* ImpactSounds )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_Shotgun.GetWeaponSpecificImpactSound" );

		struct GetWeaponSpecificImpactSoundParams
		{
			SFXPhysicalMaterialImpactSounds* ImpactSounds; //offset = 0, size = 4
			WwiseEvent* ReturnValue; //offset = 4, size = 4
		} params;

		params.ImpactSounds = ImpactSounds;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	ParticleSystem* SFXWeapon_Shotgun::GetWeaponSpecificImpactEffect( SFXPhysicalMaterialImpactEffects* ImpactEffects )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_Shotgun.GetWeaponSpecificImpactEffect" );

		struct GetWeaponSpecificImpactEffectParams
		{
			SFXPhysicalMaterialImpactEffects* ImpactEffects; //offset = 0, size = 4
			ParticleSystem* ReturnValue; //offset = 4, size = 4
		} params;

		params.ImpactEffects = ImpactEffects;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	DecalComponent* SFXWeapon_Shotgun::GetWeaponSpecificDecalData( SFXPhysicalMaterialDecals* DecalEffects, Float FadeTime, Int DecalLength )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_Shotgun.GetWeaponSpecificDecalData" );

		struct GetWeaponSpecificDecalDataParams
		{
			SFXPhysicalMaterialDecals* DecalEffects; //offset = 0, size = 4
			Float FadeTime; //offset = 4, size = 4
			DecalComponent* ReturnValue; //offset = 8, size = 4
			Int DecalLength; //offset = 12, size = 4
		} params;

		params.DecalEffects = DecalEffects;
		params.FadeTime = FadeTime;
		params.DecalLength = DecalLength;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void SFXWeapon_Shotgun::FirePellets( Vector StartLocation, Rotator AimRotation, Byte FireMode, Vector EndTrace, Array<ImpactInfo> ImpactList, ImpactInfo RealImpact, Int PelletIdx, Int idx, Rotator AimRot, Bool bAudioWasSuppressed, Bool bTracersWereSuppressed, Bool bImpactsWereSuppressed, Actor* Target )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_Shotgun.FirePellets" );

		struct FirePelletsParams
		{
			Vector StartLocation; //offset = 0, size = 12
			Rotator AimRotation; //offset = 12, size = 12
			Byte FireMode; //offset = 24, size = 1
			Vector EndTrace; //offset = 28, size = 12
			Array<ImpactInfo> ImpactList; //offset = 40, size = 12
			ImpactInfo RealImpact; //offset = 52, size = 68
			Int PelletIdx; //offset = 120, size = 4
			Int idx; //offset = 124, size = 4
			Rotator AimRot; //offset = 128, size = 12
			Bool bAudioWasSuppressed: 1; //offset = 140, size = 4
			Bool bTracersWereSuppressed: 1; //offset = 144, size = 4
			Bool bImpactsWereSuppressed: 1; //offset = 148, size = 4
			Actor* Target; //offset = 152, size = 4
		} params;

		params.StartLocation = StartLocation;
		params.AimRotation = AimRotation;
		params.FireMode = FireMode;
		params.EndTrace = EndTrace;
		params.ImpactList = ImpactList;
		params.RealImpact = RealImpact;
		params.PelletIdx = PelletIdx;
		params.idx = idx;
		params.AimRot = AimRot;
		params.bAudioWasSuppressed = bAudioWasSuppressed;
		params.bTracersWereSuppressed = bTracersWereSuppressed;
		params.bImpactsWereSuppressed = bImpactsWereSuppressed;
		params.Target = Target;

		this->call_function( function, &params, 0 );
	}

	void SFXWeapon_Shotgun::DrawDebugShotgunCone( Vector StartLocation, Rotator AimRot, Float ConeAngleRad )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_Shotgun.DrawDebugShotgunCone" );

		struct DrawDebugShotgunConeParams
		{
			Vector StartLocation; //offset = 0, size = 12
			Rotator AimRot; //offset = 12, size = 12
			Float ConeAngleRad; //offset = 24, size = 4
		} params;

		params.StartLocation = StartLocation;
		params.AimRot = AimRot;
		params.ConeAngleRad = ConeAngleRad;

		this->call_function( function, &params, 0 );
	}

	void SFXWeapon_Shotgun::CustomFire( BioPlayerController* PC, Vector StartTrace, Rotator AimRot )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_Shotgun.CustomFire" );

		struct CustomFireParams
		{
			BioPlayerController* PC; //offset = 0, size = 4
			Vector StartTrace; //offset = 4, size = 12
			Rotator AimRot; //offset = 16, size = 12
		} params;

		params.PC = PC;
		params.StartTrace = StartTrace;
		params.AimRot = AimRot;

		this->call_function( function, &params, 0 );
	}

	Bool SFXWeapon_Shotgun::ShouldSpawnTracerFX()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_Shotgun.ShouldSpawnTracerFX" );

		struct ShouldSpawnTracerFXParams
		{
			Bool ReturnValue: 1; //offset = 0, size = 4
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void SFXWeapon_SniperRifle::SetZoomed( Bool bState )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_SniperRifle.SetZoomed" );

		struct SetZoomedParams
		{
			Bool bState: 1; //offset = 0, size = 4
		} params;

		params.bState = bState;

		this->call_function( function, &params, 0 );
	}

	WwiseEvent* SFXWeapon_SniperRifle::GetWeaponSpecificImpactSound( SFXPhysicalMaterialImpactSounds* ImpactSounds )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_SniperRifle.GetWeaponSpecificImpactSound" );

		struct GetWeaponSpecificImpactSoundParams
		{
			SFXPhysicalMaterialImpactSounds* ImpactSounds; //offset = 0, size = 4
			WwiseEvent* ReturnValue; //offset = 4, size = 4
		} params;

		params.ImpactSounds = ImpactSounds;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	ParticleSystem* SFXWeapon_SniperRifle::GetWeaponSpecificImpactEffect( SFXPhysicalMaterialImpactEffects* ImpactEffects )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_SniperRifle.GetWeaponSpecificImpactEffect" );

		struct GetWeaponSpecificImpactEffectParams
		{
			SFXPhysicalMaterialImpactEffects* ImpactEffects; //offset = 0, size = 4
			ParticleSystem* ReturnValue; //offset = 4, size = 4
		} params;

		params.ImpactEffects = ImpactEffects;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	DecalComponent* SFXWeapon_SniperRifle::GetWeaponSpecificDecalData( SFXPhysicalMaterialDecals* DecalEffects, Float FadeTime, Int DecalLength )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_SniperRifle.GetWeaponSpecificDecalData" );

		struct GetWeaponSpecificDecalDataParams
		{
			SFXPhysicalMaterialDecals* DecalEffects; //offset = 0, size = 4
			Float FadeTime; //offset = 4, size = 4
			DecalComponent* ReturnValue; //offset = 8, size = 4
			Int DecalLength; //offset = 12, size = 4
		} params;

		params.DecalEffects = DecalEffects;
		params.FadeTime = FadeTime;
		params.DecalLength = DecalLength;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	WwiseEvent* SFXWeapon_HeavyPistol::GetWeaponSpecificImpactSound( SFXPhysicalMaterialImpactSounds* ImpactSounds )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_HeavyPistol.GetWeaponSpecificImpactSound" );

		struct GetWeaponSpecificImpactSoundParams
		{
			SFXPhysicalMaterialImpactSounds* ImpactSounds; //offset = 0, size = 4
			WwiseEvent* ReturnValue; //offset = 4, size = 4
		} params;

		params.ImpactSounds = ImpactSounds;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	ParticleSystem* SFXWeapon_HeavyPistol::GetWeaponSpecificImpactEffect( SFXPhysicalMaterialImpactEffects* ImpactEffects )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_HeavyPistol.GetWeaponSpecificImpactEffect" );

		struct GetWeaponSpecificImpactEffectParams
		{
			SFXPhysicalMaterialImpactEffects* ImpactEffects; //offset = 0, size = 4
			ParticleSystem* ReturnValue; //offset = 4, size = 4
		} params;

		params.ImpactEffects = ImpactEffects;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	DecalComponent* SFXWeapon_HeavyPistol::GetWeaponSpecificDecalData( SFXPhysicalMaterialDecals* DecalEffects, Float FadeTime, Int DecalLength )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXWeapon_HeavyPistol.GetWeaponSpecificDecalData" );

		struct GetWeaponSpecificDecalDataParams
		{
			SFXPhysicalMaterialDecals* DecalEffects; //offset = 0, size = 4
			Float FadeTime; //offset = 4, size = 4
			DecalComponent* ReturnValue; //offset = 8, size = 4
			Int DecalLength; //offset = 12, size = 4
		} params;

		params.DecalEffects = DecalEffects;
		params.FadeTime = FadeTime;
		params.DecalLength = DecalLength;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void SFXProjectile_Grenade::Recycle()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXProjectile_Grenade.Recycle" );

		this->call_function( function, 0, 0 );
	}

	void SFXProjectile_Grenade::DoImpact( Actor* InImpactedActor, Controller* InInstigatorController, Float BaseDamage, Float InDamageRadius, Float Momentum, Vector HurtOrigin, Bool bFullDamage, BioPawn* HitPawn, Float RandomNumber, Array<Byte> Parts )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXProjectile_Grenade.DoImpact" );

		struct DoImpactParams
		{
			Actor* InImpactedActor; //offset = 0, size = 4
			Controller* InInstigatorController; //offset = 4, size = 4
			Float BaseDamage; //offset = 8, size = 4
			Float InDamageRadius; //offset = 12, size = 4
			Float Momentum; //offset = 16, size = 4
			Vector HurtOrigin; //offset = 20, size = 12
			Bool bFullDamage: 1; //offset = 32, size = 4
			BioPawn* HitPawn; //offset = 36, size = 4
			Float RandomNumber; //offset = 40, size = 4
			Array<Byte> Parts; //offset = 44, size = 12
		} params;

		params.InImpactedActor = InImpactedActor;
		params.InInstigatorController = InInstigatorController;
		params.BaseDamage = BaseDamage;
		params.InDamageRadius = InDamageRadius;
		params.Momentum = Momentum;
		params.HurtOrigin = HurtOrigin;
		params.bFullDamage = bFullDamage;
		params.HitPawn = HitPawn;
		params.RandomNumber = RandomNumber;
		params.Parts = Parts;

		this->call_function( function, &params, 0 );
	}

	void SFXProjectile_Grenade::Tick( Float DeltaTime, Vector DesiredOrientation, Vector CurrentOrientation, Float fAngle, Float fTargetVelocity, Float fAngleChange )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXProjectile_Grenade.Tick" );

		struct TickParams
		{
			Float DeltaTime; //offset = 0, size = 4
			Vector DesiredOrientation; //offset = 4, size = 12
			Vector CurrentOrientation; //offset = 16, size = 12
			Float fAngle; //offset = 28, size = 4
			Float fTargetVelocity; //offset = 32, size = 4
			Float fAngleChange; //offset = 36, size = 4
		} params;

		params.DeltaTime = DeltaTime;
		params.DesiredOrientation = DesiredOrientation;
		params.CurrentOrientation = CurrentOrientation;
		params.fAngle = fAngle;
		params.fTargetVelocity = fTargetVelocity;
		params.fAngleChange = fAngleChange;

		this->call_function( function, &params, 0 );
	}

	Vector SFXProjectile_Grenade::GetAimLocation(, Vector NodeLocation, BioPawn* oPawn )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXProjectile_Grenade.GetAimLocation" );

		struct GetAimLocationParams
		{
			Vector ReturnValue; //offset = 0, size = 12
			Vector NodeLocation; //offset = 12, size = 12
			BioPawn* oPawn; //offset = 24, size = 4
		} params;

		params.NodeLocation = NodeLocation;
		params.oPawn = oPawn;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void SFXProjectile_Grenade::Init( Vector Direction, BioPlayerController* PC )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function SFXGameContent_Inventory.SFXProjectile_Grenade.Init" );

		struct InitParams
		{
			Vector Direction; //offset = 0, size = 12
			BioPlayerController* PC; //offset = 12, size = 4
		} params;

		params.Direction = Direction;
		params.PC = PC;

		this->call_function( function, &params, 0 );
	}
}
